import { BasicColumn, FormSchema } from '/@/components/Table';
import dayjs from 'dayjs';
import moment from 'moment';

/**
 * 定义时序数值数据表头
 */
export const timeSeriesNumberDataTableColumns: BasicColumn[] = [
  {
    title: '点号',
    dataIndex: 'pointid',
    fixed: 'left',
    width: 100,
    ifShow: false,
  },
  {
    title: '点号',
    dataIndex: 'pointname',
    width: 150,
    ifShow: true,
  },
  {
    title: '数据时标',
    dataIndex: 'tm',
    ifShow: false,
    width: 150,
  },
  {
    title: '数据时标',
    dataIndex: 'tmstr',
    ifShow: true,
    width: 150,
  },
  {
    title: '数据值',
    dataIndex: 'value',
    width: 100,
  },
  {
    title: '数据值单位',
    dataIndex: 'unit',
    width: 100,
  },
  {
    title: '写入/更新时间',
    dataIndex: 'intm',
    width: 150,
  },
];

/**
 * 定义查询条件表单
 */
export const timeSeriesNumberDataTableQueryConditionFormSchema: FormSchema[] = [
  {
    field: 'pointids',
    label: '点号',
    component: 'Select',
    componentProps: {
      mode: 'multiple',//设置为可以多选，设置为multiple或tags
    },
    colProps: { span: 12 },
  },
  {
    field: 'beginEndtm',
    label: '日期范围',
    component: 'RangePicker', //控件类型
    colProps: { span: 7 }, //列属性集合
    componentProps: {
      picker: 'date',
    },
    //默认值设置为当月第一天和最后一天
    defaultValue: [
      dayjs(dayjs().startOf('month').format('YYYY-MM-DD')),
      dayjs(dayjs().endOf('month').format('YYYY-MM-DD')),
    ],
    required: true, //是否必须
  },
  // {
  //   field: 'begintm',
  //   label: '开始时间',
  //   component: 'DatePicker', //控件类型
  //   colProps: { span: 4 }, //列属性集合
  //   required: true, //是否必须
  //   componentProps: {
  //     //显示时分秒配置，不写不显示选择具体的时分秒
  //     // showTime: {
  //     //   format: 'YYYY-MM-DD',
  //     // },
  //     //设置不可选
  //     disabledDate: (current) => {
  //       //不可选择未来时间
  //       return current && current > Date.now();
  //     },
  //     valueFormat: 'YYYY-MM-DD',
  //   },
  //   defaultValue: moment().startOf('date').format('YYYY-MM-DD'),
  // },
  // {
  //   field: 'endtm',
  //   label: '结束时间',
  //   component: 'DatePicker',
  //   colProps: { span: 4 },
  //   required: true,
  //   componentProps: {
  //     //显示时分秒配置，不写不显示选择具体的时分秒
  //     // showTime: {
  //     //   format: 'YYYY-MM-DD',
  //     // },
  //     //设置不可选
  //     disabledDate: (current) => {
  //       //不可选择未来时间
  //       return current && current > Date.now();
  //     },
  //     valueFormat: 'YYYY-MM-DD',
  //   },
  //   defaultValue: moment().endOf('date').format('YYYY-MM-DD'),
  // }
];

/**
 * 定义新增/修改时序数据表单
 */
export const timeSeriesNumberDataFormSchema: FormSchema[] = [
  {
    field: 'pointid',
    label: '点号',
    component: 'Select',
    colProps: { span: 16 },
    required: true,
    show: true,
  },
  {
    field: 'tm',
    label: '数据时标',
    component: 'DatePicker',
    colProps: { span: 24 },
    required: true,
    componentProps: {
      //显示时分秒配置，不写不显示选择具体的时分秒
      showTime: {
        format: 'YYYY-MM-DD HH:mm:ss',
      },
      //设置不可选择未来时间
      // disabledDate: (current) => {
      //   return current && current > Date.now();
      // },
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
    },
    defaultValue: moment().startOf('date').format('YYYY-MM-DD HH:mm:ss'),
  },
  {
    field: 'value',
    label: '数据值',
    component: 'InputNumber',
    componentProps: {
      style: {
        width: '50%',
      },
    },
    colProps: { span: 24 },
    required: true,
    show: true,
  },
];